#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>


typedef int DataType;
typedef struct SListNode
{
	DataType data;
	struct SListNode* next;
}SLTNode;


void Print(SLTNode* phead);
void PushBack(SLTNode** pphead, DataType x);
void PushFront(SLTNode** pphead, DataType x);

void PopBack(SLTNode** pphead);
void PopFront(SLTNode** pphead);

SLTNode* SLTFind(SLTNode* pphead, DataType x);
void PushInsertBefore(SLTNode** pphead, SLTNode* pos, DataType x);
void PushInsertAfter(SLTNode* pos, DataType x);

void PopErase(SLTNode** pphead, SLTNode* pos);
void PopEraseAfter(SLTNode* pos);

void Destory(SLTNode** pphead);